            <!-- KAPITEL 1 START: VARIABLER -->

            <h2><a id="ch1">Variabler</a></h2>

            <h3><a id="ch1_1">Introduktion</a></h3>
            <p>Variabler används för att spara information.  Utan variabler kan ett program inte komma ihåg något.  Om du inte kan spara information, hur ska då tex ett spel veta vad du har för level?</p>
            <p>Tänk dig själv att inte kunna komma ihåg något.  Säg att du vill lägga ihop två tal.  Någon ber dig att lägga ihop 3 och 2.  Det blir 5!  Det var väl lätt?  Okej, men nu vill jag att du lägger till ytterligare 15.  Okej, då ska vi alltså lägga till 15 på... oj, vad var det nu jag fick för svar?  Inget minne... derp!</p>
            <img id="meme1" src="img/memeTrollProblem.png" alt="Problem?">
            <p>Hur löser vi detta?  Variabler!</p>
            <p>Beroende på vilket programeringsspråk man använder så skapar man variabler på lite olika sätt.  Något som alltid är likadant är dock att en variabel måste ha ett namn!  Om vi har flera olika variabler utan namn, hur ska då programmet komma åt dessa?</p>
            <p>Nytt exempel!<br>
            Kom ihåg följande åldrar!  1337, 69, 50.</p>
            <p>Okej, bra.  Nu borde du kunna svara på hur gammal Derp är, eller?  Och hur gammal är Herp?  Eller Ferp?</p>
            <img id="meme2" src="img/memeKiddingMe.png" alt="Are you fkn kiddning me?">
            <p>Kanske blir det litte lättare om vi säger såhär istället:</p>
            <p>Derp är 1337 år gammal.<br>
            Herp är 69 år.<br>
            Ferp är 50 år.</p>
            <p>Man skulle kunna säga att du "sparade" åldrarna i huvudet innuti variabler som hade namnen Derp, Herp och Ferp.  Eller?</p>
            <p>Om vi vill att ett program ska komma ihåg detta då?  Hur skriver man då?</p>
            <p>Det är lätt!  variabelNamn = värde!</p>

            <!-- KAPITEL 1.1: EXEMPEL 1 -->

            <h4><a id="ex1_1_1">Exempel:  Ålder</a></h4>
            <pre>Derp = 1337;
Herp = 69;
Ferp = 100;</pre>
            <p>Som var nämnt tidigare så skriver man på olika sätt i olika programmeringsspråk.  I nästan alla språk avslutar man kommandon med ";" (utan citattecken!).  Datorn vet inte vad mellanslag och enter är för något, och därför måste man skilja på olika instruktioner på något annat sätt.  Det är därför vi använder oss av ";" såfort vi gett programmet en instruktion.</p>
            <p>Så, var det där allt?</p>
            <p>Nej, tyvärr inte.  Det finns lite mer man behöver kunna för att använda sig av variabler fullständigt.</p>
            <p>Och då kommer vi in på...</p>

            <!-- KAPITEL 1.2: DATATYPER -->

            <h3><a id="ch1_2">Datatyper</a></h3>
            <img id="meme3" src="img/memeWhy.png" alt="Whyyy?">
            <p>I exemplet med åldrar så vet vi att det handlar om siffror.  Mer specifikt, vi vet att det handlar om heltal (dvs tal utan decimaler!).  Ex: 3, 6, 100, 47, 42.</p>
            <p>Men ett program vet inte detta i förväg, och för att hålla reda på detta använder man datatyper.  Varje datatyp beskriver vad för typ av data (information/värde) vi vill arbeta med.</p>
            <p>Det finns en hel del olika datatyper, men vi börjar med tre som är ganska vanliga:</p>
            <p>String<br>
            Integer<br>
            Double</p>

            <!-- KAPITEL 1.2.1: STRING -->

            <h4><a id="ch1_2_1">String</a></h4>
            <p>String, eller sträng som vi säger på svenska, är av typen text.  Om jag vill spara "Hej!" i en variabel måste jag göra denna variabel till en string.</p>
            <p>Något som är mycket viktigt med strängar är att man <strong>alltid</strong> måste ha citattecken (") före och efter texten man vill spara.</p>

            <!-- KAPITEL 1.2.1: EXEMPEL 1 -->

            <h4><a id="ex1_2_1_1">Exempel: String</a></h4>
            <pre>enText = "Hej hej!";
enAnnanText = "Woohoo, detta är en text!";
merText = "Okej, detta börjar bli tjatigt!";
enLuring = "1337";</pre>
            <p>Okej, här har vi skapat 4 stycken variabler.</p>
            <p>enText<br>
            enAnnanText<br>
            merText<br>
            enLuring</p>
            <p>Alla variabler borde vara av typen string eftersom dom innehåller text.  Eller?</p>
            <p>Sa vi inte att det skulle handla om text?  "1337" ser ju inte ut som text, det är ju siffror!</p>
            <p>Detta stämmer delvis, det är siffror som står inom citattecknen.  Men på grund av att vi använder citattecknen (") så kommer programmet tolka detta som text.  Det är viktigt att komma ihåg detta!</p>

            <!-- KAPITEL 1.2.2: INTEGER -->

            <h3><a id="ch1_2_2">Integer</a></h3>
            <img id="meme4" src="img/memeFeelLikeSir.png" alt="Feel like a sir!">
            <p>Integer, eller int, använder vi när vi vill spara heltal.</p>
            <p>Heltal är precis vad det låter som:  hela tal.  Dvs, inga decimaler!</p>

            <!-- KAPITEL 1.2.2: EXEMPEL 1 -->

            <h4><a id="ex1_2_2_1">Exempel: Integer</a></h4>
            <pre>ettHeltal = 1;
ettAnnatHeltal = 324;
merHeltal = 42;</pre>
            <p>Inte så konstigt, eller hur?</p>
            <p>Tänk på att integers <strong>bara</strong> kan vara heltal.  Så vad händer om vi på något ställe har 5 delat på 2?</p>
            <p>5 delat på 2 är ju vanligtvis 2,5.  Men hur fungerar det när integers inte kan ha några decimaler?</p>
            <p>Jo, man får helt enkelt "ta bort" decimalerna om man vill förutse vad 5 delat på 2 skulle bli när man använder integers.</p>
            <p>Så vad blir det?  5 delat på 2, utan decimaler (inga avrundningar eller något konstigt, man tar helt enkelt bara bort decimalerna!) blir...</p>
            <p>2! (2.5 med .5 borttaget!)</p>

            <!-- KAPITEL 1.2.3: DOUBLE -->

            <h3><a id="ch1_2_3">Double</a></h3>
            <p>Men om vi vill ha decimaler då?  Känns ju ganska dumt om vi inte kan använda det!  När vi vill spara tal som innehåller decimaler måste vi använda oss av datatypen double.</p>

            <!-- KAPITEL 1.2.3: EXEMPEL 1 -->

            <h4><a id="ex1_2_3_1">Exempel: Double</a></h4>
            <pre>ettDecimalTal = 1.0;
ettAnnatDecimalTal = 13.37;
merDecimalTal = 0.2223;</pre>
            <p>Något som du kanske lägger märke till här (som svensk) är att decimaltecknet är skrivet med en punkt istället för ett komma.  Detta är på grund av att de flesta programmeringsspråk är skriva av och för engelska.</p>
            <p>Och vad använder man som decimaltecken då?  Precis, en punkt.</p>

            <!-- KAPITEL 1.3: SKAPA/ANVÄND/ÄNDRA VARIABLER -->

            <h3><a id="ch1_3_1">Skapa, använd och ändra variabler</a></h3>
            <p>Okej, så nu vet vi vad en variabel är.  Vi vet också att det finns olika datatyper som variabler kan vara.</p>
            <p>Om vi vill spara något så blir steg 1 förstås att skapa en variabel.</p>
            <p>Vi går rakt på ett exempel!</p>

            <!-- KAPITEL 1.3: EXEMPEL 1 -->

            <h4><a id="ex1_3_1_1">Exempel: Skapa variabler</a></h4>
            <pre>int ettHeltal;
double ettDecimalTal;
String enText;</pre>
            <p>Okej, nu har vi sagt till vårat program att det ska finnas 3 stycken variabler.</p>
            <p>ettHeltal ska vara av typen integer.<br>
            ettDecimalTal ska vara av typen double.<br>
            Och till sist, enText ska vara av typen String</p>
            <p>Men... dom innehåller ju inget?!</p>
            <p>Nej, det gör dom inte.  Inte än.  Vanligtvis brukar man skapa variabler med innehåll direkt, man undviker buggar då, men detta är bara ett exempel.  Anledningen till varför det är skrivet såhär är för att visa tydligt att man bara behöver ange datatypen då man skapar en variabel.</p>
            <img id="meme5" src="img/memeSuspicious.png" alt="Waahh...">
            <p>Så om vi vill spara lite information i våra variabler då?</p>

            <!-- KAPITEL 1.3: EXEMPEL 2 -->

            <h4><a id="ex1_3_2">Exempel: Spara information i en variabel</a></h4>
            <pre>int ettHeltal;
double ettDecimalTal;
String enText;
            
ettHeltal = 1337;
ettDecimalTal = 13.37;
enText = "1337";</pre>
            <p>Men måste man inte skriva int, double och String framför?</p>
            <p>Både ja och nej!  Du behöver bara skriva ut datatypen när du skapar en variabel!</p>
            <p>När en variabel är skapad redan (som i exemplet ovan) så behöver du inte skriva ut datatypen igen.</p>
            <p>Okej okej!  Kan vi använda våra variabler nu?</p>
            <p>Sure!  Dags att använda våra variabler!</p>
            <p>Om vi backar lite i tiden så kommer vi ihåg ett exempel där vi skulle lägga ihop 2 och 3, sedan skulle vi lägga till 15, eller hur?</p>
            <p>Dags att göra detta med variabler!</p>
            <img id="meme6" src="img/memeAllThe.png" alt="Woo!">

            <!-- KAPITEL 1.3: EXEMPEL 3 -->

            <h4><a id="ex1_3_3">Exempel: Använd variabler</a></h4>
            <pre>int ettTal;
int ettAnnatTal;
int ettDerpTal;
int enSumma;

ettTal = 2;
ettAnnatTal = 3;
ettDerpTal = 15;
            
enSumma = ettTal + ettAnnatTal;
enSumma = enSumma + ettDerpTal;</pre>
            <img id="meme7" src="img/memeCerealGuy.png" alt="WHAT?!">
            <p>Oh lord... vad är allt det där?!</p>
            <p>Det är inte så avancerat.  Vi tar ett par rader i taget.</p>
            <p>int ettTal;<br>
            int ettAnnatTal;<br>
            int ettDerpTal;<br>
            int enSumma;</p>
            <p>Här skapar vi 4 stycken variabler av typen integer.  Nu går dessa att använda, och vi behöver inte ange deras datatyp igen!</p>
            <p>ettTal = 2;<br>
            ettAnnatTal = 3;<br>
            ettDerpTal = 15;</p>
            <p>Här ger vi tre av våra variabler värden.  Dessa värden <strong>måste</strong> vara heltal eftersom vi skapade dessa variabler som integers!</p>
            <p>enSumma = ettTal + ettAnnatTal;</p>
            <p>Här säger vi att enSumma ska innehålla ettTal (2) plus ettAnnatTal (3), dvs 5.  Här gäller samma sak som förrut när det handlar om datatyper.  enSumma är av typen integer, därför får vi inte tilldela något annat än en integer!  Och eftersom både ettTal och ettAnnatTal båda är integers så är även summan av de båda en integer.</p>
            <p>enSumma = enSumma + ettDerpTal;</p>
            <p>Här säger vi att enSumma ska innehålla vad enSumma innehöll förrut (5) plus ettDerpTal (15).</p>
            <p>Så vad innehåller enSumma tillslut?  Precis, 20!</p>


            <!-- KAPITEL 1.3: EXEMPEL 4 -->

            <h4><a id="ex1_3_4">Exempel: Sätt värde på variabler direkt</a></h4>
            <pre class="prettyprint">int ettTal = 2;
int ettAnnatTal = 3;
int ettDerpTal = 15;
int enSumma = ettTal + ettAnnatTal;
enSumma = enSumma + ettDerpTal;</pre>
            <img id="meme8" src="img/memeFuckYeah.png" alt="Fuck yeah!">
            <p>Här står det exakt samma som tidigare.  Den ända skillnaden är att vi tilldelar våra variabler värden såfort vi skapar dom.  Lägg märke till att enSumma <strong>inte</strong> behöver ha int framför sig på den sista raden.  Varför?  Jo, precis, för variablen är redan är skapad!</p>
            <p>Det är bra om man alltid tilldelar värden direkt, men om det känns lättare att komma ihåg den andra metoden, börja att skriva så istället.</p>
